// src/utils/auth.js
import { ElMessageBox } from 'element-plus'
import router from '@/router'

/**
 * 检查用户是否已登录
 * @returns {boolean} 是否已登录
 */
export const checkLogin = () => {
  const token = localStorage.getItem('token')
  return token && token.trim() !== ''
}

/**
 * 检查登录状态，如果未登录则提示并跳转
 * @param {Function} callback 登录成功后的回调函数
 * @returns {Promise<boolean>} 是否已登录
 */
export const requireLogin = async (callback) => {
  if (checkLogin()) {
    if (callback) {
      await callback()
    }
    return true
  } else {
    try {
      await ElMessageBox.confirm('请先登录', '提示', {
        confirmButtonText: '去登录',
        cancelButtonText: '取消',
        type: 'warning'
      })
      router.push('/userLogin')
    } catch {
      // 用户取消登录
    }
    return false
  }
}

/**
 * 获取当前用户Token
 * @returns {string|null} 用户Token
 */
export const getToken = () => {
  const token = localStorage.getItem('token')
  return token && token.trim() !== '' ? token : null
}

/**
 * 清除登录信息
 */
export const clearAuth = () => {
  localStorage.removeItem('token')
  localStorage.removeItem('userInfo')
}
